module VCDL(in, clk_in, clk_out);
  input in, clk_in;
  output clk_out;
  reg [6:0] node;
  PGINV U1 (.In(clk_in), .OUT(node[1]), .ENp(0), .EN(in) );
  PGINV U2 (.In(node[1]), .OUT(node[2]), .ENp(0), .EN(in));
  PGINV U3 (.In(node[2]), .OUT(node[3]), .ENp(0), .EN(in));
  PGINV U4 (.In(node[3]), .OUT(node[4]), .ENp(0), .EN(in));
  PGINV U5 (.In(node[4]), .OUT(node[5]), .ENp(0), .EN(in));
  PGINV U6 (.In(node[5]), .OUT(node[6]), .ENp(0), .EN(in));
endmodule



module TDC(ctr, node);
  input ctr;
  output [31:0] node;
  INVX0 U0 (.INP(ctr), .ZN(ctrb));
  
  PGINV U1 (.In(node[0]), .OUT(node[1]), .ENp(ctrb), .EN(ctr));
  PGINV U2 (.In(node[1]), .OUT(node[2]), .ENp(ctrb), .EN(ctr));
  PGINV U3 (.In(node[2]), .OUT(node[3]), .ENp(ctrb), .EN(ctr));
  PGINV U4 (.In(node[3]), .OUT(node[4]), .ENp(ctrb), .EN(ctr));
  PGINV U5 (.In(node[4]), .OUT(node[5]), .ENp(ctrb), .EN(ctr));
  PGINV U6 (.In(node[5]), .OUT(node[6]), .ENp(ctrb), .EN(ctr));
  PGINV U7 (.In(node[6]), .OUT (node[7]), .ENp(ctrb), .EN(ctr));
  PGINV U8 (.In(node[7]), .OUT(node[8]), .ENp(ctrb), .EN(ctr));
  PGINV U9 (.In(node[8]), .OUT(node[9]), .ENp(ctrb), .EN(ctr));
  PGINV U10 (.In(node[9]), .OUT(node[10]), .ENp(ctrb), .EN(ctr));
  PGINV U11 (.In(node[10]), .OUT(node[11]), .ENp(ctrb), .EN(ctr));
  PGINV U12 (.In(node[11]), .OUT(node[12]), .ENp(ctrb), .EN(ctr));
  PGINV U13 (.In(node[12]), .OUT(node[13]), .ENp(ctrb), .EN(ctr));
  PGINV U14 (.In(node[13]), .OUT(node[14]), .ENp(ctrb), .EN(ctr));
  PGINV U15 (.In(node[14]), .OUT(node[15]), .ENp(ctrb), .EN(ctr));
  PGINV U16 (.In(node[15]), .OUT(node[16]), .ENp(ctrb), .EN(ctr));
  PGINV U17 (.In(node[16]), .OUT(node[17]), .ENp(ctrb), .EN(ctr));
  PGINV U18 (.In(node[17]), .OUT(node[18]), .ENp(ctrb), .EN(ctr));
  PGINV U19 (.In(node[18]), .OUT(node[19]), .ENp(ctrb), .EN(ctr));
  PGINV U20 (.In(node[19]), .OUT (node[20]), .ENp(ctrb), .EN(ctr));
  PGINV U21 (.In(node[20]), .OUT(node[21]), .ENp(ctrb), .EN(ctr));
  PGINV U22 (.In(node[21]), .OUT(node[22]), .ENp(ctrb), .EN(ctr));
  PGINV U23 (.In(node[22]), .OUT(node[23]), .ENp(ctrb), .EN(ctr));
  PGINV U24 (.In(node[23]), .OUT(node[24]), .ENp(ctrb), .EN(ctr));
  PGINV U25 (.In(node[24]), .OUT(node[25]), .ENp(ctrb), .EN(ctr));
  PGINV U26 (.In(node[25]), .OUT(node[26]), .ENp(ctrb), .EN(ctr));
  PGINV U27 (.In(node[26]), .OUT(node[27]), .ENp(ctrb), .EN(ctr));
  PGINV U28 (.In(node[27]), .OUT(node[28]), .ENp(ctrb), .EN(ctr));
  PGINV U29 (.In(node[28]), .OUT(node[29]), .ENp(ctrb), .EN(ctr));
  PGINV U30 (.In(node[29]), .OUT(node[30]), .ENp(ctrb), .EN(ctr));
  PGINV U31 (.In(node[30]), .OUT(node[31]), .ENp(ctrb), .EN(ctr));
  PGINV U32 (.In(node[31]), .OUT(node[0]), .ENp(ctrb), .EN(ctr));
endmodule


module Diff(in, clk, out);
  input [9:0] in;
  input clk;
  output [9:0] out;

  reg [9:0] in_d;
  reg [9:0] in_dd;
  
  DFFX1 U1   ( .D(in[0]), .CLK(clk), .Q(in_d[0]) );
  DFFX1 U2   ( .D(in[1]), .CLK(clk), .Q(in_d[1]) );
  DFFX1 U3   ( .D(in[2]), .CLK(clk), .Q(in_d[2]) );
  DFFX1 U4   ( .D(in[3]), .CLK(clk), .Q(in_d[3]) );
  DFFX1 U5   ( .D(in[4]), .CLK(clk), .Q(in_d[4]) );
  DFFX1 U6   ( .D(in[5]), .CLK(clk), .Q(in_d[5]) );
  DFFX1 U7   ( .D(in[6]), .CLK(clk), .Q(in_d[6]) );
  DFFX1 U8   ( .D(in[7]), .CLK(clk), .Q(in_d[7]) );
  DFFX1 U9   ( .D(in[8]), .CLK(clk), .Q(in_d[8]) );
  DFFX1 U10   ( .D(in[9]), .CLK(clk), .Q(in_d[9]) );

  DFFX1 U1a  ( .D(in_d[0]), .CLK(clk), .Q(in_dd[0]) );
  DFFX1 U2a  ( .D(in_d[1]), .CLK(clk), .Q(in_dd[1]) );
  DFFX1 U3a  ( .D(in_d[2]), .CLK(clk), .Q(in_dd[2]) );
  DFFX1 U4a  ( .D(in_d[3]), .CLK(clk), .Q(in_dd[3]) );
  DFFX1 U5a  ( .D(in_d[4]), .CLK(clk), .Q(in_dd[4]) );
  DFFX1 U6a  ( .D(in_d[5]), .CLK(clk), .Q(in_dd[5]) );
  DFFX1 U7a  ( .D(in_d[6]), .CLK(clk), .Q(in_dd[6]) );
  DFFX1 U8a  ( .D(in_d[7]), .CLK(clk), .Q(in_dd[7]) );
  DFFX1 U9a  ( .D(in_d[8]), .CLK(clk), .Q(in_dd[8]) );
  DFFX1 U10a  ( .D(in_d[9]), .CLK(clk), .Q(in_dd[9]) );

  XOR2X1 U1x ( .IN1(in_d[0]), .IN2(in_dd[0]), .Q(out[0]) );
  XOR2X1 U2x ( .IN1(in_d[1]), .IN2(in_dd[1]), .Q(out[1]) );
  XOR2X1 U3x ( .IN1(in_d[2]), .IN2(in_dd[2]), .Q(out[2]) );
  XOR2X1 U4x ( .IN1(in_d[3]), .IN2(in_dd[3]), .Q(out[3]) );
  XOR2X1 U5x ( .IN1(in_d[4]), .IN2(in_dd[4]), .Q(out[4]) );
  XOR2X1 U6x ( .IN1(in_d[5]), .IN2(in_dd[5]), .Q(out[5]) );
  XOR2X1 U7x ( .IN1(in_d[6]), .IN2(in_dd[6]), .Q(out[6]) );
  XOR2X1 U8x ( .IN1(in_d[7]), .IN2(in_dd[7]), .Q(out[7]) );
  XOR2X1 U9x ( .IN1(in_d[8]), .IN2(in_dd[8]), .Q(out[8]) );
  XOR2X1 U10x ( .IN1(in_d[9]), .IN2(in_dd[9]), .Q(out[9]) );
endmodule



module T2B_1 ( in, out );
  input [31:0] in;
  output [5:0] out;
  wire   N279, N280, N281, N282, N283, N284, n131, n132, n133, n134, n135,
         n136, n137, n138, n139, n140, n141, n142, n143, n144, n145, n146,
         n147, n148, n149, n150, n151, n152, n153, n154, n155, n156, n157,
         n158, n159, n160, n161, n162, n163, n164, n165, n166, n167, n168,
         n169, n170, n171, n172, n173, n174, n175, n176, n177, n178, n179,
         n180, n181, n182, n183, n184, n185, n186, n187, n188, n189, n190,
         n191, n192, n193, n194, n195, n196, n197, n198, n199, n200, n201,
         n202, n203, n204, n205, n206, n207, n208, n209, n210, n211, n212,
         n213, n214, n215, n216, n217, n218, n219, n220, n221, n222, n223,
         n224, n225, n226, n227, n228, n229, n230, n231, n232, n233, n234,
         n235, n236, n237, n238, n239, n240, n241, n242, n243, n244, n245,
         n246, n247, n248, n249, n250, n251, n252, n253, n254, n255, n256;

  LATCHX1 \out_reg[4]  ( .CLK(N284), .D(N283), .Q(out[4]) );
  LATCHX1 \out_reg[3]  ( .CLK(N284), .D(N282), .Q(out[3]) );
  LATCHX1 \out_reg[2]  ( .CLK(N284), .D(N281), .Q(out[2]) );
  LATCHX1 \out_reg[1]  ( .CLK(N284), .D(N280), .Q(out[1]) );
  LATCHX1 \out_reg[0]  ( .CLK(N284), .D(N279), .Q(out[0]) );
  TIEL U138 ( .ZN(out[5]) );
  NOR2X0 U139 ( .IN1(in[0]), .IN2(n131), .QN(N284) );
  NOR4X0 U140 ( .IN1(n132), .IN2(n133), .IN3(n134), .IN4(n135), .QN(n131) );
  NOR2X0 U141 ( .IN1(n136), .IN2(n137), .QN(n134) );
  NAND4X0 U142 ( .IN1(n138), .IN2(n139), .IN3(n140), .IN4(n141), .QN(n132) );
  INVX0 U143 ( .INP(N280), .ZN(n141) );
  NAND3X0 U144 ( .IN1(n142), .IN2(n143), .IN3(n144), .QN(N283) );
  INVX0 U145 ( .INP(n135), .ZN(n144) );
  NAND4X0 U146 ( .IN1(n145), .IN2(n146), .IN3(n147), .IN4(n148), .QN(n135) );
  NAND3X0 U147 ( .IN1(n149), .IN2(n150), .IN3(in[16]), .QN(n145) );
  NAND4X0 U148 ( .IN1(n140), .IN2(n151), .IN3(n152), .IN4(n153), .QN(N282) );
  AND4X1 U149 ( .IN1(n154), .IN2(n155), .IN3(n156), .IN4(n157), .Q(n153) );
  AND3X1 U150 ( .IN1(n158), .IN2(n159), .IN3(n148), .Q(n152) );
  NAND3X0 U151 ( .IN1(n160), .IN2(n161), .IN3(in[24]), .QN(n148) );
  NAND3X0 U152 ( .IN1(n162), .IN2(n163), .IN3(in[8]), .QN(n140) );
  INVX0 U153 ( .INP(in[9]), .ZN(n163) );
  NAND4X0 U154 ( .IN1(n139), .IN2(n164), .IN3(n165), .IN4(n166), .QN(N281) );
  AND4X1 U155 ( .IN1(n154), .IN2(n167), .IN3(n168), .IN4(n169), .Q(n166) );
  AND4X1 U156 ( .IN1(n146), .IN2(n138), .IN3(n170), .IN4(n171), .Q(n154) );
  AND4X1 U157 ( .IN1(n172), .IN2(n173), .IN3(n174), .IN4(n175), .Q(n171) );
  AND2X1 U158 ( .IN1(n176), .IN2(n177), .Q(n170) );
  NAND4X0 U159 ( .IN1(in[12]), .IN2(n178), .IN3(n179), .IN4(n180), .QN(n138)
         );
  NAND4X0 U160 ( .IN1(in[28]), .IN2(n181), .IN3(n182), .IN4(n183), .QN(n146)
         );
  AND3X1 U161 ( .IN1(n184), .IN2(n147), .IN3(n185), .Q(n165) );
  NAND3X0 U162 ( .IN1(n186), .IN2(n187), .IN3(in[20]), .QN(n147) );
  NAND4X0 U163 ( .IN1(in[4]), .IN2(n188), .IN3(n189), .IN4(n190), .QN(n139) );
  NAND4X0 U164 ( .IN1(n191), .IN2(n192), .IN3(n143), .IN4(n193), .QN(N280) );
  AND3X1 U165 ( .IN1(n185), .IN2(n159), .IN3(n174), .Q(n193) );
  NAND4X0 U166 ( .IN1(in[14]), .IN2(n194), .IN3(n195), .IN4(n196), .QN(n174)
         );
  NOR2X0 U167 ( .IN1(in[15]), .IN2(in[13]), .QN(n195) );
  INVX0 U168 ( .INP(n197), .ZN(n194) );
  NAND3X0 U169 ( .IN1(n198), .IN2(n199), .IN3(in[10]), .QN(n159) );
  NAND4X0 U170 ( .IN1(in[6]), .IN2(n188), .IN3(n200), .IN4(n189), .QN(n185) );
  AND4X1 U171 ( .IN1(n169), .IN2(n201), .IN3(n157), .IN4(n202), .Q(n143) );
  NOR2X0 U172 ( .IN1(n203), .IN2(n204), .QN(n202) );
  INVX0 U173 ( .INP(n173), .ZN(n203) );
  NAND4X0 U174 ( .IN1(n182), .IN2(n183), .IN3(n205), .IN4(n206), .QN(n173) );
  NOR2X0 U175 ( .IN1(n207), .IN2(n208), .QN(n206) );
  INVX0 U176 ( .INP(in[30]), .ZN(n208) );
  NAND4X0 U177 ( .IN1(n209), .IN2(n210), .IN3(n211), .IN4(n212), .QN(n157) );
  NOR2X0 U178 ( .IN1(n213), .IN2(n214), .QN(n212) );
  NAND3X0 U179 ( .IN1(n215), .IN2(n216), .IN3(in[18]), .QN(n201) );
  NAND4X0 U180 ( .IN1(n217), .IN2(n218), .IN3(n219), .IN4(n220), .QN(n169) );
  NOR2X0 U181 ( .IN1(n221), .IN2(n222), .QN(n220) );
  NAND3X0 U182 ( .IN1(n223), .IN2(n224), .IN3(in[2]), .QN(n192) );
  INVX0 U183 ( .INP(n225), .ZN(n191) );
  OR3X1 U184 ( .IN1(n225), .IN2(n204), .IN3(n133), .Q(N279) );
  NAND4X0 U185 ( .IN1(n142), .IN2(n226), .IN3(n227), .IN4(n176), .QN(n133) );
  NAND4X0 U186 ( .IN1(in[13]), .IN2(n178), .IN3(n196), .IN4(n180), .QN(n176)
         );
  INVX0 U187 ( .INP(in[15]), .ZN(n180) );
  AND2X1 U188 ( .IN1(n158), .IN2(n184), .Q(n227) );
  NAND4X0 U189 ( .IN1(in[5]), .IN2(n188), .IN3(n200), .IN4(n190), .QN(n184) );
  AND3X1 U190 ( .IN1(n228), .IN2(n229), .IN3(n230), .Q(n188) );
  INVX0 U191 ( .INP(in[7]), .ZN(n229) );
  NAND3X0 U192 ( .IN1(n162), .IN2(n231), .IN3(in[9]), .QN(n158) );
  INVX0 U193 ( .INP(in[8]), .ZN(n231) );
  NOR3X0 U194 ( .IN1(in[10]), .IN2(in[11]), .IN3(n232), .QN(n162) );
  NAND3X0 U195 ( .IN1(n223), .IN2(n233), .IN3(in[1]), .QN(n226) );
  AND3X1 U196 ( .IN1(n234), .IN2(n235), .IN3(n230), .Q(n223) );
  AND4X1 U197 ( .IN1(n236), .IN2(n167), .IN3(n155), .IN4(n177), .Q(n142) );
  NAND4X0 U198 ( .IN1(in[29]), .IN2(n181), .IN3(n205), .IN4(n183), .QN(n177)
         );
  INVX0 U199 ( .INP(in[31]), .ZN(n183) );
  NAND3X0 U200 ( .IN1(n237), .IN2(n210), .IN3(in[25]), .QN(n155) );
  NAND3X0 U201 ( .IN1(n238), .IN2(n218), .IN3(in[21]), .QN(n167) );
  NAND4X0 U202 ( .IN1(n239), .IN2(n216), .IN3(n240), .IN4(n241), .QN(n236) );
  AND2X1 U203 ( .IN1(n149), .IN2(in[17]), .Q(n241) );
  INVX0 U204 ( .INP(n242), .ZN(n149) );
  INVX0 U205 ( .INP(in[19]), .ZN(n216) );
  NAND4X0 U206 ( .IN1(n164), .IN2(n151), .IN3(n172), .IN4(n243), .QN(n204) );
  NAND3X0 U207 ( .IN1(n215), .IN2(n239), .IN3(in[19]), .QN(n243) );
  INVX0 U208 ( .INP(in[18]), .ZN(n239) );
  NOR3X0 U209 ( .IN1(in[16]), .IN2(in[17]), .IN3(n242), .QN(n215) );
  NAND4X0 U210 ( .IN1(n244), .IN2(n245), .IN3(n187), .IN4(n219), .QN(n242) );
  NAND4X0 U211 ( .IN1(in[31]), .IN2(n181), .IN3(n205), .IN4(n182), .QN(n172)
         );
  INVX0 U212 ( .INP(in[29]), .ZN(n182) );
  INVX0 U213 ( .INP(in[28]), .ZN(n205) );
  NOR2X0 U214 ( .IN1(n207), .IN2(in[30]), .QN(n181) );
  NAND4X0 U215 ( .IN1(n244), .IN2(n246), .IN3(n161), .IN4(n211), .QN(n207) );
  NAND3X0 U216 ( .IN1(n237), .IN2(n209), .IN3(in[27]), .QN(n151) );
  AND3X1 U217 ( .IN1(n211), .IN2(n214), .IN3(n160), .Q(n237) );
  INVX0 U218 ( .INP(n213), .ZN(n160) );
  NAND3X0 U219 ( .IN1(n246), .IN2(n247), .IN3(n244), .QN(n213) );
  NAND3X0 U220 ( .IN1(n238), .IN2(n217), .IN3(in[23]), .QN(n164) );
  AND3X1 U221 ( .IN1(n219), .IN2(n222), .IN3(n186), .Q(n238) );
  INVX0 U222 ( .INP(n221), .ZN(n186) );
  NAND4X0 U223 ( .IN1(n244), .IN2(n245), .IN3(n150), .IN4(n240), .QN(n221) );
  INVX0 U224 ( .INP(n137), .ZN(n244) );
  NAND3X0 U225 ( .IN1(n234), .IN2(n228), .IN3(n248), .QN(n137) );
  NAND4X0 U226 ( .IN1(n249), .IN2(n168), .IN3(n156), .IN4(n175), .QN(n225) );
  NAND4X0 U227 ( .IN1(in[15]), .IN2(n178), .IN3(n196), .IN4(n179), .QN(n175)
         );
  INVX0 U228 ( .INP(in[13]), .ZN(n179) );
  INVX0 U229 ( .INP(in[12]), .ZN(n196) );
  NOR2X0 U230 ( .IN1(n197), .IN2(in[14]), .QN(n178) );
  NAND3X0 U231 ( .IN1(n250), .IN2(n251), .IN3(n198), .QN(n197) );
  NAND4X0 U232 ( .IN1(in[11]), .IN2(n199), .IN3(n252), .IN4(n251), .QN(n156)
         );
  NOR2X0 U233 ( .IN1(in[9]), .IN2(in[8]), .QN(n252) );
  INVX0 U234 ( .INP(n232), .ZN(n199) );
  NAND2X0 U235 ( .IN1(n253), .IN2(n250), .QN(n232) );
  AND3X1 U236 ( .IN1(n254), .IN2(n228), .IN3(n234), .Q(n250) );
  NAND4X0 U237 ( .IN1(n230), .IN2(n228), .IN3(in[7]), .IN4(n255), .QN(n168) );
  AND3X1 U238 ( .IN1(n200), .IN2(n190), .IN3(n189), .Q(n255) );
  INVX0 U239 ( .INP(in[5]), .ZN(n189) );
  INVX0 U240 ( .INP(in[6]), .ZN(n190) );
  INVX0 U241 ( .INP(in[4]), .ZN(n200) );
  AND3X1 U242 ( .IN1(n233), .IN2(n235), .IN3(n224), .Q(n228) );
  INVX0 U243 ( .INP(in[1]), .ZN(n224) );
  INVX0 U244 ( .INP(in[3]), .ZN(n235) );
  INVX0 U245 ( .INP(in[2]), .ZN(n233) );
  NAND4X0 U246 ( .IN1(in[3]), .IN2(n230), .IN3(n256), .IN4(n234), .QN(n249) );
  NOR4X0 U247 ( .IN1(in[4]), .IN2(in[5]), .IN3(in[6]), .IN4(in[7]), .QN(n234)
         );
  NOR2X0 U248 ( .IN1(in[2]), .IN2(in[1]), .QN(n256) );
  AND2X1 U249 ( .IN1(n248), .IN2(n254), .Q(n230) );
  INVX0 U250 ( .INP(n136), .ZN(n254) );
  NAND2X0 U251 ( .IN1(n245), .IN2(n246), .QN(n136) );
  AND4X1 U252 ( .IN1(n187), .IN2(n150), .IN3(n240), .IN4(n219), .Q(n246) );
  INVX0 U253 ( .INP(in[20]), .ZN(n219) );
  INVX0 U254 ( .INP(in[16]), .ZN(n240) );
  NOR3X0 U255 ( .IN1(in[18]), .IN2(in[19]), .IN3(in[17]), .QN(n150) );
  AND3X1 U256 ( .IN1(n222), .IN2(n218), .IN3(n217), .Q(n187) );
  INVX0 U257 ( .INP(in[21]), .ZN(n217) );
  INVX0 U258 ( .INP(in[23]), .ZN(n218) );
  INVX0 U259 ( .INP(in[22]), .ZN(n222) );
  AND3X1 U260 ( .IN1(n247), .IN2(n211), .IN3(n161), .Q(n245) );
  AND3X1 U261 ( .IN1(n214), .IN2(n210), .IN3(n209), .Q(n161) );
  INVX0 U262 ( .INP(in[25]), .ZN(n209) );
  INVX0 U263 ( .INP(in[27]), .ZN(n210) );
  INVX0 U264 ( .INP(in[26]), .ZN(n214) );
  INVX0 U265 ( .INP(in[24]), .ZN(n211) );
  NOR4X0 U266 ( .IN1(in[28]), .IN2(in[29]), .IN3(in[30]), .IN4(in[31]), .QN(
        n247) );
  AND3X1 U267 ( .IN1(n253), .IN2(n251), .IN3(n198), .Q(n248) );
  NOR3X0 U268 ( .IN1(in[8]), .IN2(in[9]), .IN3(in[11]), .QN(n198) );
  INVX0 U269 ( .INP(in[10]), .ZN(n251) );
  NOR4X0 U270 ( .IN1(in[12]), .IN2(in[13]), .IN3(in[14]), .IN4(in[15]), .QN(
        n253) );
endmodule



module decimator_1_DW01_inc_0 ( A, SUM );
  input [9:0] A;
  output [9:0] SUM;

  wire   [9:2] carry;

  HADDX1 U1_1_8 ( .A0(A[8]), .B0(carry[8]), .C1(carry[9]), .SO(SUM[8]) );
  HADDX1 U1_1_7 ( .A0(A[7]), .B0(carry[7]), .C1(carry[8]), .SO(SUM[7]) );
  HADDX1 U1_1_6 ( .A0(A[6]), .B0(carry[6]), .C1(carry[7]), .SO(SUM[6]) );
  HADDX1 U1_1_5 ( .A0(A[5]), .B0(carry[5]), .C1(carry[6]), .SO(SUM[5]) );
  HADDX1 U1_1_4 ( .A0(A[4]), .B0(carry[4]), .C1(carry[5]), .SO(SUM[4]) );
  HADDX1 U1_1_3 ( .A0(A[3]), .B0(carry[3]), .C1(carry[4]), .SO(SUM[3]) );
  HADDX1 U1_1_2 ( .A0(A[2]), .B0(carry[2]), .C1(carry[3]), .SO(SUM[2]) );
  HADDX1 U1_1_1 ( .A0(A[1]), .B0(A[0]), .C1(carry[2]), .SO(SUM[1]) );
  INVX0 U1 ( .INP(A[0]), .ZN(SUM[0]) );
  XOR2X1 U2 ( .IN1(carry[9]), .IN2(A[9]), .Q(SUM[9]) );
endmodule



module decimator_1 ( CLK, B, Q );
  input [5:0] B;
  output [9:0] Q;
  input CLK;
  wire   N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, \U3/U1/Z_0 , n37, n38, n39,
         n40, n41, n42, n43, n44, n45, n46, n47, n48, n49, n50, n51, n52, n53,
         n54, n55, n56, n57, n58, n59, n60, n61, n62, n65, n66, n67, n68, n69,
         n70, n71, n72, n73, n74, n75, n76, n77, n78, n79, n80, n81, n82, n83,
         n84, n85, n86, n87, n88, n89, n90, n91, n92, n93, n94, n95, n96, n97,
         n98, n99, n100, n101, n102, n103, n104, n105, n106, n107, n108, n109,
         n110, n111, n112, n113, n114, n115, n116, n117, n118, n119, n120,
         n121, n122, n123, n124, n125;
  wire   [9:0] timer;
  assign \U3/U1/Z_0  = B[0];

  DFFX1 \timer_reg[0]  ( .D(N1), .CLK(CLK), .Q(timer[0]), .QN(n41) );
  DFFX1 \timer_reg[1]  ( .D(N2), .CLK(CLK), .Q(timer[1]), .QN(n42) );
  DFFX1 \timer_reg[2]  ( .D(N3), .CLK(CLK), .Q(timer[2]), .QN(n40) );
  DFFX1 \timer_reg[3]  ( .D(N4), .CLK(CLK), .Q(timer[3]) );
  DFFX1 \timer_reg[4]  ( .D(N5), .CLK(CLK), .Q(timer[4]) );
  DFFX1 \timer_reg[5]  ( .D(N6), .CLK(CLK), .Q(timer[5]), .QN(n38) );
  DFFX1 \timer_reg[6]  ( .D(N7), .CLK(CLK), .Q(timer[6]), .QN(n39) );
  DFFX1 \timer_reg[7]  ( .D(N8), .CLK(CLK), .Q(timer[7]), .QN(n37) );
  DFFX1 \timer_reg[8]  ( .D(N9), .CLK(CLK), .Q(timer[8]) );
  DFFX1 \timer_reg[9]  ( .D(N10), .CLK(CLK), .Q(timer[9]) );
  DFFNX1 \count_reg[0]  ( .D(n74), .CLK(CLK), .Q(n80), .QN(n52) );
  DFFX1 \Q_reg[0]  ( .D(n62), .CLK(CLK), .Q(Q[0]) );
  DFFNX1 \count_reg[1]  ( .D(n73), .CLK(CLK), .Q(n75), .QN(n51) );
  DFFX1 \Q_reg[1]  ( .D(n61), .CLK(CLK), .Q(Q[1]) );
  DFFNX1 \count_reg[2]  ( .D(n72), .CLK(CLK), .Q(n76), .QN(n50) );
  DFFX1 \Q_reg[2]  ( .D(n60), .CLK(CLK), .Q(Q[2]) );
  DFFNX1 \count_reg[3]  ( .D(n71), .CLK(CLK), .Q(n77), .QN(n49) );
  DFFX1 \Q_reg[3]  ( .D(n59), .CLK(CLK), .Q(Q[3]) );
  DFFNX1 \count_reg[4]  ( .D(n70), .CLK(CLK), .Q(n78), .QN(n48) );
  DFFX1 \Q_reg[4]  ( .D(n58), .CLK(CLK), .Q(Q[4]) );
  DFFNX1 \count_reg[5]  ( .D(n69), .CLK(CLK), .Q(n81), .QN(n47) );
  DFFX1 \Q_reg[5]  ( .D(n57), .CLK(CLK), .Q(Q[5]) );
  DFFNX1 \count_reg[6]  ( .D(n68), .CLK(CLK), .Q(n83), .QN(n46) );
  DFFX1 \Q_reg[6]  ( .D(n56), .CLK(CLK), .Q(Q[6]) );
  DFFNX1 \count_reg[7]  ( .D(n67), .CLK(CLK), .Q(n82), .QN(n45) );
  DFFX1 \Q_reg[7]  ( .D(n55), .CLK(CLK), .Q(Q[7]) );
  DFFNX1 \count_reg[8]  ( .D(n66), .CLK(CLK), .Q(n79), .QN(n44) );
  DFFX1 \Q_reg[8]  ( .D(n54), .CLK(CLK), .Q(Q[8]) );
  DFFNX1 \count_reg[9]  ( .D(n65), .CLK(CLK), .Q(n84), .QN(n43) );
  DFFX1 \Q_reg[9]  ( .D(n53), .CLK(CLK), .Q(Q[9]) );
  decimator_1_DW01_inc_0 add_9 ( .A(timer), .SUM({N10, N9, N8, N7, N6, N5, N4, 
        N3, N2, N1}) );
  MUX21X1 U52 ( .IN1(n85), .IN2(n86), .S(n52), .Q(n74) );
  NOR2X0 U53 ( .IN1(n87), .IN2(n88), .QN(n86) );
  AO21X1 U54 ( .IN1(n89), .IN2(n88), .IN3(n90), .Q(n85) );
  AO22X1 U55 ( .IN1(n90), .IN2(n75), .IN3(n91), .IN4(n89), .Q(n73) );
  XOR3X1 U56 ( .IN1(n75), .IN2(n92), .IN3(n93), .Q(n91) );
  AO22X1 U57 ( .IN1(n90), .IN2(n76), .IN3(n89), .IN4(n94), .Q(n72) );
  XOR3X1 U58 ( .IN1(n76), .IN2(n95), .IN3(n96), .Q(n94) );
  AO22X1 U59 ( .IN1(n90), .IN2(n77), .IN3(n89), .IN4(n97), .Q(n71) );
  XOR3X1 U60 ( .IN1(n77), .IN2(n98), .IN3(n99), .Q(n97) );
  AO22X1 U61 ( .IN1(n90), .IN2(n78), .IN3(n89), .IN4(n100), .Q(n70) );
  XOR3X1 U62 ( .IN1(n78), .IN2(n101), .IN3(n102), .Q(n100) );
  MUX21X1 U63 ( .IN1(n103), .IN2(n104), .S(n47), .Q(n69) );
  NOR2X0 U64 ( .IN1(n105), .IN2(n87), .QN(n104) );
  MUX21X1 U65 ( .IN1(n106), .IN2(n107), .S(n46), .Q(n68) );
  NOR3X0 U66 ( .IN1(n87), .IN2(n47), .IN3(n105), .QN(n107) );
  AO21X1 U67 ( .IN1(n47), .IN2(n89), .IN3(n103), .Q(n106) );
  AO21X1 U68 ( .IN1(n89), .IN2(n105), .IN3(n90), .Q(n103) );
  MUX21X1 U69 ( .IN1(n108), .IN2(n109), .S(n45), .Q(n67) );
  NOR2X0 U70 ( .IN1(n87), .IN2(n110), .QN(n109) );
  MUX21X1 U71 ( .IN1(n111), .IN2(n112), .S(n44), .Q(n66) );
  MUX21X1 U72 ( .IN1(n113), .IN2(n114), .S(n43), .Q(n65) );
  AND2X1 U73 ( .IN1(n79), .IN2(n112), .Q(n114) );
  NOR3X0 U74 ( .IN1(n87), .IN2(n45), .IN3(n110), .QN(n112) );
  AO21X1 U75 ( .IN1(n44), .IN2(n89), .IN3(n111), .Q(n113) );
  AO21X1 U76 ( .IN1(n45), .IN2(n89), .IN3(n108), .Q(n111) );
  AO21X1 U77 ( .IN1(n89), .IN2(n110), .IN3(n90), .Q(n108) );
  AND2X1 U78 ( .IN1(n115), .IN2(n87), .Q(n90) );
  INVX0 U79 ( .INP(n89), .ZN(n87) );
  OR3X1 U80 ( .IN1(n46), .IN2(n47), .IN3(n105), .Q(n110) );
  AO21X1 U81 ( .IN1(n102), .IN2(n101), .IN3(n48), .Q(n105) );
  AO21X1 U82 ( .IN1(n99), .IN2(n98), .IN3(n49), .Q(n102) );
  NAND2X0 U83 ( .IN1(B[3]), .IN2(n116), .QN(n98) );
  AO21X1 U84 ( .IN1(n96), .IN2(n95), .IN3(n50), .Q(n99) );
  NAND3X0 U85 ( .IN1(n117), .IN2(n88), .IN3(B[2]), .QN(n95) );
  INVX0 U86 ( .INP(B[1]), .ZN(n117) );
  AO21X1 U87 ( .IN1(n92), .IN2(n93), .IN3(n51), .Q(n96) );
  NAND2X0 U88 ( .IN1(\U3/U1/Z_0 ), .IN2(n80), .QN(n93) );
  NAND2X0 U89 ( .IN1(B[1]), .IN2(n88), .QN(n92) );
  INVX0 U90 ( .INP(\U3/U1/Z_0 ), .ZN(n88) );
  OA21X1 U91 ( .IN1(B[4]), .IN2(n101), .IN3(n115), .Q(n89) );
  NAND4X0 U92 ( .IN1(timer[9]), .IN2(timer[8]), .IN3(n118), .IN4(n119), .QN(
        n115) );
  NOR4X0 U93 ( .IN1(n120), .IN2(n40), .IN3(n41), .IN4(n42), .QN(n119) );
  NAND2X0 U94 ( .IN1(timer[4]), .IN2(timer[3]), .QN(n120) );
  NOR3X0 U95 ( .IN1(n37), .IN2(n38), .IN3(n39), .QN(n118) );
  NAND2X0 U96 ( .IN1(n116), .IN2(n121), .QN(n101) );
  INVX0 U97 ( .INP(B[3]), .ZN(n121) );
  NOR3X0 U98 ( .IN1(B[2]), .IN2(\U3/U1/Z_0 ), .IN3(B[1]), .QN(n116) );
  MUX21X1 U99 ( .IN1(Q[0]), .IN2(n80), .S(n122), .Q(n62) );
  MUX21X1 U100 ( .IN1(Q[1]), .IN2(n75), .S(n122), .Q(n61) );
  MUX21X1 U101 ( .IN1(Q[2]), .IN2(n76), .S(n122), .Q(n60) );
  MUX21X1 U102 ( .IN1(Q[3]), .IN2(n77), .S(n122), .Q(n59) );
  MUX21X1 U103 ( .IN1(Q[4]), .IN2(n78), .S(n122), .Q(n58) );
  MUX21X1 U104 ( .IN1(Q[5]), .IN2(n81), .S(n122), .Q(n57) );
  MUX21X1 U105 ( .IN1(Q[6]), .IN2(n83), .S(n122), .Q(n56) );
  MUX21X1 U106 ( .IN1(Q[7]), .IN2(n82), .S(n122), .Q(n55) );
  MUX21X1 U107 ( .IN1(Q[8]), .IN2(n79), .S(n122), .Q(n54) );
  MUX21X1 U108 ( .IN1(Q[9]), .IN2(n84), .S(n122), .Q(n53) );
  AND4X1 U109 ( .IN1(N9), .IN2(N8), .IN3(n123), .IN4(n124), .Q(n122) );
  AND3X1 U110 ( .IN1(N4), .IN2(N3), .IN3(n125), .Q(n124) );
  AND3X1 U111 ( .IN1(N10), .IN2(N1), .IN3(N2), .Q(n125) );
  AND3X1 U112 ( .IN1(N6), .IN2(N5), .IN3(N7), .Q(n123) );
endmodule



module ADC(VIN, Clk, OUT);
  input  VIN;
  input Clk;
  output [9:0] OUT;
  wire LF_OUT, VCDL_OUT, CTR; 
  reg [31:0] TDC_OUT;
  reg [31:0] DIFF_OUT;
  reg [4:0] BIN_OUT;

  // VCDL U1 (LF_OUT, Clk, VCDL_OUT);
  XOR2X1 U2 (Clk, VCDL_OUT, CTR);
  // TDC U3 (CTR, TDC_OUT);
  Diff U4 (TDC_OUT, Clk, DIFF_OUT);
  T2B_1 U5 ( DIFF_OUT, BIN_OUT);
  decimator_1 U6 ( Clk, BIN_OUT, OUT);
  
  // LoopFilter U07 (.I5(BIN_OUT[4]), .I4(BIN_OUT[3]), .I3(BIN_OUT[2]), .I1(BIN_OUT[0]), .I2(BIN_OUT[1]), .OUT(LF_OUT), .INN(VIN), .VB(Clk) );
endmodule
